Multicast communication refers to the transmission of identical data packets to selected, multiple destinations. In contrast, broadcast communication refers to the indiscriminate transmission of data packets to all destinations, and unicast communication refers to the transmission of data packets to a single destination.
Every participant in a multicast receives information transmitted by any other participant in the multicast. Users connected to the network who are not participants in a particular multicast do not receive the information transmitted by the participants of the multicast. In this way, the multicast communication uses only the network components (e.g., switches and trunks) actually needed for the multicast transmission.
With conventional techniques, a switch transmits multicast packets on all of its ports. FIG. 1 is a block diagram of an Ethernet switch 100. The Ethernet switch 100 includes a switching mechanism 110 connected to several port interface controllers 120. The switching mechanism 110 may include any conventional shared medium, shared memory, or space-division device.
The port interface controller 120 transports packets between a port and the switching mechanism 110. FIG. 2 is a block diagram of a port interface controller 120. The port interface controller 120 includes an Ethernet interface 210, a Media Access Control (MAC) address learner 220, a MAC address table 230, a MAC address matcher 240, and a controller 250.
The Ethernet interface 210 receives an inbound packet transmitted from a host attached to switching mechanism 110 over an Ethernet channel, and passes the packet to the MAC address learner 220. The MAC address learner 220 reads the Ethernet address of the originating host and stores the address in the MAC address table 230, if the address is not already stored there. The controller 250 maintains addresses of attached hosts in the MAC address table 230. If a host has not transmitted for a certain period of time, the controller 250 removes the MAC address of the host from the MAC address table 230.
The MAC address learner 220 sends the received packet to the controller 250, which, in turn, forwards the packet to the switching mechanism 110 (FIG. 1). The switching mechanism 110 identifies the appropriate port interface controller 120 for the packet and sends it to this controller.
The controller 250 of the identified port interface controller 120 receives the packet from the switching mechanism 110 and sends it to the MAC address matcher 240. The MAC address matcher 240 compares the packet's destination address to the MAC addresses stored in the MAC address table 230. If the outbound packet's destination address is of a broadcast or multicast type, or is unicast and matches an entry in the MAC address table 230, the MAC address matcher 240 forwards the packet to its port for transmission to the attached host(s).
Conventional Ethernet switches do not support Internet Protocol (IP) multicasting. IP multicasting first found its application in audio and video conferencing. Each IP multicast group contains a unique class-D IP address ranging from 224.0.0.1 to 239.255.255.255. Multicast data is sent to a group based on this unique address. For an IP multicast packet transmitted on the Ethernet, the multicast Ethernet address includes the least significant 23 bits of the IP address.
FIG. 3 is a high-level diagram of conventional multicast processing by an Ethernet switch. When a host desires to join a particular IP multicast group, the host sends a "request to join" message to the nearest multicast-capable router to request to join the multicast group and receive information sent to this group. In FIG. 3, host A sends a message to join multicast group Y, and host B sends a message to join multicast group X. The router R propagates the request up to the multicast source if the data path is not already in place.
Upon receiving an IP packet for group X, for example, the router R maps the class-D IP multicast group address into an Ethernet multicast address, and sends the resultant Ethernet packet to the appropriate switch(es) 100. The switch 100 transmits the packet on all of its ports.
The current Internet Group Management Protocol (IGMP) does not specify an explicit message for withdrawing membership from the multicast group. A host's membership expires when the router does not receive a periodic membership report from the host.
Some conventional Ethernet switches route IP packets and, therefore, support IP multicasting. However, despite the words "Ethernet switch" in their names, they are, in fact, not Ethernet switches, but routers because the actual switching is carried out at the IP or the network layer, not at the Ethernet or data link layer. Consequently, their performance and cost are comparable with routers and much higher than that of Ethernet switches due to the overhead of IP decoding and routing.
No multicast mechanism currently exists at the data link layer, corresponding to the IP layer. As a result, a conventional Ethernet switch broadcasts multicast packets, sending them to all ports regardless of whether the hosts attached to these ports are intended recipients for the packets. It is the responsibility of the receiving host to determine whether a packet belongs to the groups that have been requested at the IP layer The receiving host makes this determination through the use of an address filter either implemented in hardware on a Local Area Network (LAN) controller or in communication control software.
Thus, the current technologies for switching multicast packets at the data link layer are inefficient and will render the network inoperable when several hosts receive different multicast streams concurrently. To illustrate this problem, suppose that a conventional Ethernet switch includes one network port connecting a multicast router at 100 Mb/s and 24 local ports each connecting to a personal computer (PC) at 10 Mb/s. Assume that each of the PCs is tuned to a different video channel via IP multicasting, and each video stream is coded at 1.5 Mb/s. Since the Ethernet switch sends each multicast packet to all ports, the switch incurs a load of 24.times.1.5=36 Mb/s at each local port, far exceeding the PCs' 10 Mb/s capacity. As a result, the network becomes bogged down by congestion.
The inefficiencies of conventional Ethernet switches becomes particularly problematic in remote networks, such as the public switched data network. Malfunctioning or malicious equipment attached to a port of a switch can generate broadcast or multicast messages that overload all other ports of the same switch.
Therefore, a need exists to overcome the deficiencies of the conventional data link layer switches.